package com.study.model.mdao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.alibaba.fastjson.JSONObject;
import com.study.model.pojo.User;
@Mapper
public interface UserMDAO {
	/**
	 * 根据用户id查询部门信息
	 * @param useid
	 * @return
	 */
	public JSONObject selectDeptUserId(@Param("useid")int  useid);
	
	/**
	 * 根据用户id查询用户角色信息
	 * @param useid
	 * @return
	 */
	/*public JSONObject selectRoleUserId(@Param("useid")int useid);*/
	public List<JSONObject>  selectRoleUserId(@Param("useid")int useid);
	
	/**
	 * 根据用户id查询用户角色信息2
	 * @param useid
	 * @return
	 */
	public List<JSONObject> selectRoleUserseId(@Param("useid")int useid);
	
	/**
	 * 根据用户id修改用户基本信息
	 * @param usename
	 * @param phone
	 * @param userid
	 * @return
	 */
	public int updateUserId(@Param("usename")String usename,@Param("phone")String phone,@Param("userid")int userid,@Param("loginname")String loginname);
	
	
	/**
	 * 根据用户id修改用户部门
	 * @param depid
	 * @param useid
	 * @return
	 */
	public int updateDeptUserId(@Param("depid")int depid,@Param("useid")int useid);
	

	/**
	 * 根据用户id修改用户角色
	 * @param useid
	 * @return
	 */
	public int updateRoleUserId(@Param("useid")int useid,@Param("rolid")int rolid);
	
	/**
	 * 查询所有用户信息
	 * @return
	 */
	public List<JSONObject> selectUserAll();
	/**
	 * 根据用户登录名查询用户信息
	 * @param loginname
	 * @return
	 */
	public JSONObject selectUserloginname(@Param("loginname")String loginname);
	
	/**
	 * 实现添加用户信息
	 * @param usename
	 * @param usepassword
	 * @param usesex
	 * @param usetimein
	 * @return
	 */
	
	//#{usename},#{usepassword},#{usesex},#{usetimein},#{usphone},#{loginname},#{useimg}
	public int insertUser(@Param("usename") String usename,
			@Param("usepassword") String usepassword,@Param("usesex") String usesex,
			@Param("usetimein") Date usetimein,@Param("usphone") String usphone,
			@Param("loginname") String loginname,
			@Param("useimg") String useimg,@Param("age") int age);
	/**
	 * 实现用户和角色绑定
	 * @param useid  用户id
	 * @param rolid  角色id
	 * @return
	 */
	public int insertRoleUser(@Param("useid") int useid,@Param("rolid") int rolid);
	/**
	 * 实现用户和部门绑定
	 * @param useid
	 * @param deptid
	 * @return
	 */
	public int insertDeptUser(@Param("useid") int useid,@Param("deptid") int deptid);
	/**
	 * 根据角色id查询该角色以外的用户信息
	 * @param rolid
	 * @return
	 */

	public List<JSONObject> selectRoleIdUser(@Param("rolid") int rolid);

	/**
	 * 查询所有用户的角色和用户信息
	 * @return
	 */
	public  List<JSONObject> selectRoleuserssee();

	User selectById(int id);

	/**
	 * 当前对象是否是老板
	 * @param uid
	 * @return
	 */
	public String selectByBoss(@Param("uid") int uid);
	 
	/**
	 * 根据角色id查询对应的用户信息
	 * @param rolid
	 */
	public List<JSONObject> selectRoleUserid(@Param("roleid") int roleid);
	
	/**
	 * 实现解除用户和角色的绑定
	 * @param use_id
	 */
	public void delectUserRole(@Param("use_id") int use_id,@Param("rol_id") int rol_id);
	
	/**
	 * 根据用户id查询用户信息
	 * @param userid
	 */
	public JSONObject getfindUsreid(@Param("userid") String userid);
    /**
     * Wcx
     * 根据id查询用户
     * @param useid
     * @return
     */
	public JSONObject selectName(@Param("useid")int useid);

	public JSONObject selectName(@Param("useid")String useid);
	/**
	 * 获取用户总数
	 * @return
	 */
	public int selectCount();

}
